407. অদল-বদল

 

বড়দিনের সন্ধ্যায় জানলার নিচে তিনটে ফুলের টব রাখা ছিল এভাবেঃ রঙ্গন, জাফরান আর প্যানসি (বাম থেকে ডানে)এর পর থেকে প্রতি সকালে মাশা সেগুলো পরিষ্কার করে আর ডানের টবের সাথে অদল বদল করে মাঝেরটাআর প্রতি বিকেলে তানিয়া সেগুলোতে পানি দেয় আর বামেরটার সাথে মাঝেরটা অদল বদল করেঠিক k দিন পরে, রাতের বেলায় টবগুলো কোন ক্রমে থাকবে?

 

ইনপুট

প্রথম লাইনে থাকবে একটা সংখ্যা m (1 ≤ m ≤ 12) যা কয়টি টেস্ট কেস আছে তা দেখাবেএর পরের m টা লাইনের প্রতিটিতে থাকবে k (1 ≤ k ≤ 1000)

 

আউটপুট

প্রতিটা টেস্টকেসের জন্যে আলাদা লাইনে প্রিন্ট করতে হবে k দিন পরে টবের ক্রমএকটা ক্রম হবে তিনটি ইংরেজি অক্ষর নিয়ে  'G', 'C' এবং 'V' (বড় হাতের, কোন স্পেস থাকবে না)যেটা নির্দেশ করবে k-দিন পরে টবের ক্রম (বাম থেকে ডানে). এখানে G দিয়ে রঙ্গন, C দিয়ে জাফরান আর V দিয়ে প্যানসি বোঝাবে

 

উদাহরণ

ইনপুট

2

1

5

 

আউটপুট

VGC

CVG

 

 

সমাধান

প্রাথমিক সমস্যাকন্ডিশনাল স্টেটমেন্ট, প্যাটার্ন

 

অ্যালগোরিদম অ্যানালাইসিস

 

শুরুতে ফুলের টবগুলোর ক্রম থাকবে এরকম GCV (রঙ্গন, জাফরান আর প্যানসি). একদিন পর ক্রমটা হবে VGC (প্যানসি, রঙ্গন আর জাফরান). দ্বিতীয় দিন পর হবে CVG (জাফরান, প্যানসি আর রঙ্গন) তৃতীয় দিন শেষে একদম শুরুতে যে রকম ছিল ঠিক সে রকম হবে। এরপর থেকে দিনের সাথে সাথে আগের নিয়মে টবগুলোর ক্রমের পুনরাবৃত্তি ঘটতে থাকবে। তাই উত্তর হবে এমন:

·        যদি k, ৩ দিয়ে বিভাজ্য হয়, তাহলে টবগুলোর ক্রম হবে GCV

·        যদি k কে ৩ দিয়ে ভাগ করলে ভাগশেষ ১ থাকে, তাহলে টবগুলোর ক্রম হবে VGC

·        আর যদি k কে ৩ দিয়ে ভাগ করলে ভাগশেষ ২ হয়, তাহলে টবগুলোর ক্রম হবে CVG

 

অ্যালগোরিদম বাস্তবায়ন

ইনপুট পড়তে হবে এবং k কে ৩ দিয়ে ভাগ করলে যে ভাগশেষ পাওয়া যায় সে অনুযায়ী ফলাফল দেখাতে হবে।

 

scanf("%d",&n);

while(n--)

{

  scanf("%d",&a);

  if (a % 3 == 0) puts("GCV"); else

  if (a % 3 == 1) puts("VGC"); else puts("CVG");

}